package com.chenjt.netty.two_socket.heartBeat.server;

import io.netty.channel.ChannelInitializer;
import io.netty.channel.ChannelPipeline;
import io.netty.channel.socket.SocketChannel;
import io.netty.handler.timeout.IdleStateHandler;

import java.util.concurrent.TimeUnit;

/**
 * 注释：
 *
 * @author chenjt
 * @date 2024/8/9 9:44
 */
public class MyServerInitializer extends ChannelInitializer<SocketChannel> {
    @Override
    protected void initChannel(SocketChannel ch) throws Exception {
        ChannelPipeline pipeline = ch.pipeline();

        //空闲状态检测是处理器，在一定时间范围之内没有读，没有写，或者没有读和写，就会触发idleStateEvent事件
        //在5秒之内没有写，7秒之内没有读，10秒之内没有读和写，TimeUnit.SECONDS（不加这个默认单位是秒）
        //客户端一直往控制台里输入数据，服务端不会写入任何数据，所以会出现写空闲
        pipeline.addLast(new IdleStateHandler(5,7,10, TimeUnit.SECONDS));
        pipeline.addLast(new MyServerHandler());

    }
}
